package com.example.myproject.web;

import com.example.myproject.util.DateUtil;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.*;

import java.util.Date;

/**
 * Created by xi on 2018/6/16.
 */
@RestController
@RequestMapping("/date")
public class DateController {

    //只能解决get提交方式，表单提交
    //默认返回long时间戳，在配置文件中加入
    @InitBinder
    public void initBinder(WebDataBinder binder) {
//        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        dateFormat.setLenient(false);
//        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
        binder.registerCustomEditor(Date.class, new DateEditor());
    }

    /**
     * 日期转函数
     * @param start
     * @return
     */
    @RequestMapping("/inputDate")
    public String index(Date start) {
        return "satart:"+ DateUtil.convertDateToString(start);
    }


    /*
    spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
    spring.jackson.time-zone=GMT+8
    但是发现时间少了八小时
    设置时区
    end。
    jackson默认的时间格式是 默认的时间格式是 'yyyy-MM-dd'T'HH:mm:ss.SSS’，所以使用Date 日期来接收的会就会报错。

    调用的服务，不是也有异常问题吗。通过feign方式，B服务格式化了，A服务没有格式化； 默认date格式化是以时间错存储的，也转的是这种。所以就没问题。

    */


    /**
     * 日期转函数
     * @return
     */
    @RequestMapping(value="/inputDate3", method = RequestMethod.POST)
    public String index(@RequestBody Mt mt) {
        return "satart:"+ DateUtil.convertDateToString(mt.getStart());
    }


    //能接受日期类型的字符串吗
    @RequestMapping("/inputDate2")
    public String index(String start) {
        return "satart:"+ start;
    }
}
